home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Gamer Resource Kit / Hardcore Gamer Resource Kit - Disc 2.iso / Pc / P_R / RTZCD12.ZIP / INSTALL.DAT next >
Text File  |  1994-11-29  |  20KB  |  826 lines

  1. @DefineProject
  2.     @Name="Return to Zork"
  3.     @Version="1.1"
  4.     @OutDrive=C
  5.     @Subdir="\\RTZ"
  6.     @InDiskBell=1
  7. @EndProject
  8.  
  9. @If (@Exists("@OutDrive:\\386MAX$$"))
  10.     @Display
  11.  @Text("386MAX")
  12.  
  13.  @Text("MaySLO", @Name)
  14.  
  15.  @Pause
  16.     @EndDisplay
  17. @EndIf
  18.  
  19. @ChDrive @InDrive
  20. // @ChDir "@InDir"
  21.  
  22. @DefineVars
  23.     @QString @Lang ="TXT"   // Natural language textfile
  24.                 // Version (0=FD, 1=regular CD, 2=Reel Magic CD) 
  25.     @Integer @Media =0
  26.                 // Installing (else reconfiguring)?
  27.     @Integer @Initial =(@Exists("@InDrive:\\DISK.ID"))
  28.     @Integer @ChgCfg =0     // Changing (else showing) configuration?
  29. @EndVars
  30.  
  31. @If (@Exists("@InDrive:.\\RTZCD.*"))
  32.     @Media=1
  33.     @Name="@Name CD-ROM"
  34. @ElseIf (@Exists("@InDrive:.\\RTZRM.*"))
  35.     @Media=2
  36.     @Name="@Name Reel Magic"
  37. @EndIf
  38.  
  39. @If (!@Exists("@InDrive:.\\ITXT.@Lang"))
  40.     @If (1)        // 0=international; 1=English only
  41.         @SetOption(1)
  42.     @Else
  43.         @GetOption @Cls @LocalWindow(9,40)
  44.                 @Name
  45.             @Option 1="For  ENGLISH,  highlight this line and press ENTER"
  46.             @Option 2="Pour FRANÇAIS, ..."
  47.             @Option 3="Für  DEUTSCH,  diese Linie hervvorheben und ENTER drücken"
  48.           //@Option 4="Para ESPAÑOL,  ..."
  49.           //@Option 5="Per  ITALIANO, ..."
  50.         @EndOption
  51.     @EndIf
  52.     @If     (1[=@Option) @Lang="ENG"
  53.     @ElseIf (2[=@Option) @Lang="FRA"
  54.     @ElseIf (3[=@Option) @Lang="DEU"
  55.     @ElseIf (4[=@Option) @Lang="ESP"
  56.     @ElseIf (5[=@Option) @Lang="ITA"
  57.     @EndIf
  58. @EndIf
  59. @TextFile="ITXT.@Lang"
  60.  
  61. @DefineVars
  62.     @Integer @ExtraMem =(@ExtTotal + @EMMTotal)
  63.     @QString @MADECmd ="MADE"
  64.     @QString @FileBase ="RTZ"
  65.     @QString @ReadMe ="README"
  66.     @Integer @PRJM =22
  67.     @Integer @OtherM =2
  68.     @QString @Args =""
  69.     @Drive   @CDDrive =@InDrive     // CD-ROM drive, if any
  70.     @Integer @CDDriveI =@Eval(@CDDrive-A)   // (0=A, ..., 26=Z)
  71.     @QString @OutDir =""
  72.     @QString @ST0  ="LifeSize Sound Enhancer"
  73.     @QString @SF0  ="LSIZE"
  74.     @QString @ST1  ="Creative Labs Sound Blaster"
  75.     @QString @SF1  ="SBLASTER"
  76.     @QString @ST2  ="@ST1 Pro"
  77.     @QString @SF2  ="SBPRO"
  78.     @QString @ST3  =@Text("SBclone")
  79.     @QString @SF3  ="SBCLONE"
  80.     @QString @ST4  ="Disney SoundSource"
  81.     @QString @SF4  ="SOURCE"
  82.     @QString @ST5  ="Tandy SL/TL & Sensation"
  83.     @QString @SF5  ="TANSLTL"
  84.     @QString @ST6  ="Pro AudioSpectrum"
  85.     @QString @SF6  ="PAUDIO"
  86.     @QString @ST7  ="@ST6 16"
  87.     @QString @SF7  ="PAS16"
  88.     @QString @ST8  ="Covox Speech Thing"
  89.     @QString @SF8  ="CVXSND"
  90.     @QString @ST9  ="Windows Sound System"
  91.     @QString @SF9  ="SNDSYS"
  92.     @QString @ST10 ="@ST1 16"
  93.     @QString @SF10 ="SB16"
  94.     @QString @ST11 ="Logitech SoundMan"
  95.     @QString @SF11 =@SF2
  96.     @QString @ST12 ="Advanced Gravis UltraSound"
  97.     @QString @SF12 ="GF166"
  98.     @QString @ST13 =@Text("AdLibG")
  99.     @QString @SF13 ="ADLIBG"
  100.     @QString @SndDrvs ="@SF0=@ST0:@SF1=@ST1:@SF2=@ST2:@SF3=@ST3:@SF4=@ST4:@SF5=@ST5:@SF6=@ST6:@SF7=@ST7:@SF8=@ST8:@SF9=@ST9:@SF10=@ST10:@SF11=@ST11:@SF12=@ST12:@SF13=@ST13"
  101.     @QString @SndDrv =""
  102.     @Integer @SndDrvI =0
  103.     @QString @Snd =""
  104.     @QString @MT0 =@Text("None")
  105.     @QString @MF0 ="NUL"
  106.     @QString @MT1 =@Text("AdLib")
  107.     @QString @MF1 ="ADLIB"
  108.     @QString @MT2 =@ST13
  109.     @QString @MF2 =@SF13
  110.     @QString @MT3 =@ST1
  111.     @QString @MF3 =@MF1
  112.     @QString @MT4 =@ST2
  113.     @QString @MF4 =@MF1
  114.     @QString @MT5 =@Text("PCspkr")
  115.     @QString @MF5 ="PCSPKR"
  116.     @QString @MT6 ="Roland LAPC-I synthesizer"
  117.     @QString @MF6 ="MT32MPU"
  118.     @QString @MT7 ="Roland MPU-401 MIDI"
  119.     @QString @MF7 =@MF6
  120.     @QString @MT8 ="Roland MT-32 synthesizer"
  121.     @QString @MF8 =@MF6
  122.     @QString @MT9 =@ST10
  123.     @QString @MF9 =@MF1
  124.     @QString @MT10 =@ST12
  125.     @QString @MF10 ="GF1MIDI"
  126.     @QString @MT11 =@ST6
  127.     @QString @MF11 =@MF1
  128.     @QString @MT12 =@ST3
  129.     @QString @MF12 =@MF1
  130.     @QString @MT13 =@ST11
  131.     @QString @MF13 =@MF1
  132.     @QString @MT14 ="@ST10 MIDI"
  133.     @QString @MF14 ="SB16MPU"
  134.     @QString @MusDrvs ="@MF0=@MT0:@MF1=@MT1:@MF2=@MT2:@MF3=@MT3:@MF4=@MT4:@MF5=@MT5:@MF6=@MT6:@MF7=@MT7:@MF8=@MT8:@MF9=@MT9:@MF10=@MT10:@MF11=@MT11:@MF12=@MT12:@MF13=@MT13:@MF14=@MT14"
  135.     @QString @MusDrv =""
  136.     @Integer @MusDrvI =0
  137.     @QString @Mus =""
  138.     @QString @SndDflt =""
  139.     @QString @SndDflts ="5:3:4:12:5s:5:11p:11p:5:5:14:13:10!u:2s!"
  140.     @Integer @IOAddr =0
  141.     @QString @IOAddrQS =""
  142.     @Integer @IRQ =0
  143.     @QString @IRQQS =""
  144.     @Integer @DMA =0
  145.     @QString @DMAQS =""
  146.     @QString @LH =""
  147.     @QString @HexDig ="0123456789ABCDEF0123456789abcdef"
  148.     @QString @NY ="~N ~Y"
  149.     @QString @BOn =""
  150.     @QString @BOff =""
  151.     @Integer @TmpI1 =0
  152.     @Integer @TmpI2 =0
  153.     @Integer @TmpI3 =0
  154.     @QString @TmpQS =""
  155.     @Drive   @TmpDr =A
  156.     @Dir     @TmpDi ="\\"
  157. @EndVars
  158.  
  159. @If (@Media==1)
  160.     @Subdir="@Subdir@!-CD"
  161.     @MADECmd="@MADECmd@!CD"
  162.     @FileBase="@FileBase@!CD"
  163.     @ReadMe="@ReadMe@!CD"
  164.     @PRJM=45
  165. @ElseIf (@Media==2)
  166.     @Subdir="@Subdir@!-RM"
  167.     @MADECmd="@MADECmd@!RM"
  168.     @FileBase="@FileBase@!RM"
  169.     @ReadMe="@ReadMe@!RM"
  170. @EndIf
  171.  
  172. @Display
  173.     @MoveCStr(0,54,126,"╔════════════════╗")
  174.     @MoveCStr(1,54,126,"║    INFOCOM     ║")
  175.     @MoveCStr(2,54,126,"╚════════════════╝")
  176.     @MoveCStr(3,56,  0,"                  ")
  177.     @MoveCStr(1,72,0,"  ")
  178.     @MoveCStr(2,72,0,"  ")
  179.     @MoveCStr(4,20,95,"╔═══════════════════════════════╗")
  180.     @MoveCStr(5,20,95,"║  R E T U R N   T O   Z O R K  ║")
  181.     @MoveCStr(6,20,95,"╚═══════════════════════════════╝")
  182.     @MoveCStr(7,22, 0,"                                 ")
  183.     @MoveCStr(5,53,0,"  ")
  184.     @MoveCStr(6,53,0,"  ")
  185.     @Move(8,0)
  186.     @If (@Initial)
  187.     @Text("HiNew", @Name)
  188.         @If (!@Media)
  189.     @Text("LongTime", @Name)
  190.         @EndIf
  191.     @Text("EscCmd")
  192.     @Else
  193.     @Text("HiOld", @Name)
  194.     @EndIf
  195.  
  196.     @Pause
  197. @EndDisplay
  198.  
  199. @If (!@Initial)
  200.     @OutDrive=@InDrive
  201.     @Subdir="@GetCWD(@InDrive)"
  202.     @OutDir="@OutDrive:\\@Subdir"
  203.     @Goto ChooseConfig
  204. @EndIf
  205.  
  206.  
  207. ChooseDest:
  208.  
  209. @FlushOptions()
  210.  
  211. @TmpI1=@OtherM
  212. @If (!@Media)
  213.     @SetOption(61)
  214.     @TmpI1=(@TmpI1+@PRJM)
  215. @EndIf
  216.  
  217. @GetOutDrive @LocalWindow(15,40)
  218.     // @Suppress @InDrive // INSTALL only accepts A-Z after @Suppress
  219.     @If (!@DirExists("A:")) @Suppress A @EndIf
  220.     @If (!@DirExists("B:")) @Suppress B @EndIf
  221.     @Cls
  222.  
  223.  @Text("ProdDrv?1", @Name)
  224.  
  225.  @Text("ProdDrv?2", "@TmpI1")
  226.  
  227.  @Text("ProdDrv?3")
  228.     @Move(22,0)@Text("SelectCmds")@Move(0,0)
  229. @EndOutDrive
  230.  
  231. @TmpI2=(@DiskFree(@OutDrive)/1000000)
  232. @If (@TmpI2<@TmpI1)
  233.     @GetOption @Cls @LocalWindow(13,40)
  234.  @Text("NotEnufDisk", @Name, "@TmpI1", "@OutDrive", "@Eval(@TmpI2+1)")
  235.  
  236.  @Text("NowWhat?")
  237.         @Option 12="@Text("NewDrv")"
  238.         @Option 13="@Text("TryToInstall")"
  239.         @Option 14="@Text("Abort")"
  240.     @EndOption
  241.     @If     (12[=@Option) @Goto ChooseDest
  242.     @ElseIf (14[=@Option) @Exit
  243.     @EndIf
  244. @EndIf
  245.  
  246. @If (@Media)
  247.     @GetOption @Cls @LocalWindow(13,40)
  248.  @Text("CopyPRJ1")
  249.  
  250.  @Text("CopyPRJ2", "@PRJM")
  251.         @If (@TMpI2>=@TmpI1+@PRJM)
  252.  @Text("PRJFits", "@OutDrive")
  253.             @CheckBox
  254.             @Option 61="@Text("CopyPRJ?")"
  255.             @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  256.         @Else
  257.  @Text("!PRJFits", "@OutDrive")
  258.  
  259.  @Text("NowWhat?")
  260.             @Option  0="@Text("!Copy")"
  261.             @Option 61="@Text("TryToCopy")"
  262.             @Option 12="@Text("NewDrv")"
  263.             @Option 14="@Text("Abort")"
  264.         @EndIf
  265.     @EndOption
  266.     @If     (12[=@Option) @Goto ChooseDest
  267.     @ElseIf (14[=@Option) @Exit
  268.     @EndIf
  269. @EndIf
  270.  
  271. @GetSubdir @Cls @LocalWindow(9,40)
  272.     @Prompt=" @Text("Dir?") "
  273.  
  274.  @Text("ProdDir?", @Name)
  275.  
  276.  @Text("CreDir")
  277. @EndSubdir
  278.  
  279. @OutDir="@OutDrive:\\@Subdir"
  280. @If (@DirExists(@OutDir))
  281.     @GetOption @Cls @LocalWindow(11,40)
  282.  @Text("DirExist", @OutDir)
  283.  
  284.  @Text("NowWhat?")
  285.         @If (@DirExists("@OutDir\\DRIVERS"))
  286.             @Option 11="@Text("NewCfg")"
  287.         @EndIf
  288.         @Option 12="@Text("NewDrvOrDir")"
  289.         @Option 13="@Text("Overwrite")"
  290.         @Option 14="@Text("Abort")"
  291.     @EndOption
  292.     @If     (11[=@Option) @Goto ChooseConfig
  293.     @ElseIf (12[=@Option) @Goto ChooseDest
  294.     @ElseIf (14[=@Option) @Exit
  295.     @EndIf
  296. @EndIf
  297.  
  298. @MkDir(@OutDir)
  299.  
  300. @If ((!@Media) && 61[=@Option)
  301. @DefineDisk @Label="Disk #1"  @BeginLib RTZ.001 @File *.* @EndLib @EndDisk
  302. @DefineDisk @Label="Disk #2"  @BeginLib RTZ.002 @File *.* @EndLib @EndDisk
  303. @DefineDisk @Label="Disk #3"  @BeginLib RTZ.003 @File *.* @EndLib @EndDisk
  304. @DefineDisk @Label="Disk #4"  @BeginLib RTZ.004 @File *.* @EndLib @EndDisk
  305. @DefineDisk @Label="Disk #5"  @BeginLib RTZ.005 @File *.* @EndLib @EndDisk
  306. @DefineDisk @Label="Disk #6"  @BeginLib RTZ.006 @File *.* @EndLib @EndDisk
  307. @DefineDisk @Label="Disk #7"  @BeginLib RTZ.007 @File *.* @EndLib @EndDisk
  308. @DefineDisk @Label="Disk #8"  @BeginLib RTZ.008 @File *.* @EndLib @EndDisk
  309. @DefineDisk @Label="Disk #9"  @BeginLib RTZ.009 @File *.* @EndLib @EndDisk
  310. @DefineDisk @Label="Disk #10" @BeginLib RTZ.010 @File *.* @EndLib @EndDisk
  311. @DefineDisk @Label="Disk #11" @BeginLib RTZ.011 @File *.* @EndLib @EndDisk
  312. @DefineDisk @Label="Disk #12" @BeginLib RTZ.012 @File *.* @EndLib @EndDisk
  313. @EndIf
  314.  
  315. @DefineDisk @Label="Disk #1"
  316.     @If (@Media && 61[=@Option)
  317.         @File @FileBase.PRJ
  318.     @EndIf
  319.     @File INSTALL.EXE
  320.     @File INSTALL.DAT
  321.     @File @TextFile @Out ITXT.TXT
  322.     @BeginLib @FileBase@!DRV.RED
  323.         @File *.* @Out DRIVERS\\*.*
  324. //        @File SBPRO.COM @Out DRIVERS\\SB16.*
  325.     @EndLib
  326.     @BeginLib @FileBase.RED
  327.         @If (@Exists("@InDrive:\\READ.ME"))
  328.             @File @ReadMe.@Lang @Out READ.ME
  329.         @EndIf
  330.         @File SAMPLE.*
  331.         @File SAMPLE.AD @Out *.OPL
  332.         @File RTZ*.*
  333.         @File *.EXE
  334.     @EndLib
  335.     @If (@Exists("@InDrive:\\@MADECmd.EXE"))
  336.         @File @MADECmd.EXE
  337.     @EndIf
  338. @EndDisk
  339.  
  340. @Commit
  341.  
  342. @ChDrive @OutDrive
  343. @ChDir "@Subdir"
  344.  
  345. @TmpI1=@PeekF("RTZ.PIF", 1, 1)
  346. @PeekF(, 101, 0)
  347. @TmpI2=0
  348. PIF:
  349.     @TmpI3=(@StrIndex(@OutDir, @TmpI2))
  350.     @PokeF(,, 1, @TmpI3)
  351.     @TmpI1=(@TmpI1+@TmpI3- 32)
  352.     @TmpI2=(@TmpI2+1)
  353.     @If (@TmpI3) @Goto PIF @EndIf
  354. @PokeF(, 1, 1, @TmpI1)
  355.  
  356. @TmpI1=@PeekF("RTZ.GRP", 4, 2)
  357. @PeekF(, 90, 0)
  358. @TmpQS="@OutDir\\RTZ.PIF"
  359. @TmpI2=0
  360. GRP1:
  361.     @TmpI3=(@StrIndex(@TmpQS, @TmpI2))
  362.     @PokeF(,, 1, @TmpI3)
  363.     @TmpI1=(@TmpI1-(@TmpI3 * ((@TmpI2 & 1)*255 + 1)))
  364.     @TmpI2=(@TmpI2+1)
  365.     @If (@TmpI3) @Goto GRP1 @EndIf
  366.  
  367. @PeekF(, 158, 0)
  368. @TmpQS="@OutDir\\RTZ.ICO"
  369. @TmpI2=0
  370. GRP2:
  371.     @TmpI3=(@StrIndex(@TmpQS, @TmpI2))
  372.     @PokeF(,, 1, @TmpI3)
  373.     @TmpI1=(@TmpI1-(@TmpI3 * ((@TmpI2 & 1)*255 + 1)))
  374.     @TmpI2=(@TmpI2+1)
  375.     @If (@TmpI3) @Goto GRP2 @EndIf
  376. @PokeF(, 4, 2, @TmpI1)
  377.  
  378.  
  379. ChooseWindows:
  380.  
  381. @GetOption @Cls @CheckBox @LocalWindow(10,40)
  382.  
  383.  @Text("Win1", @Name)
  384.     @If (!@InWin)
  385.  @Text("Win2")
  386.     @EndIf
  387.     @SetOption(62) @Option 62="@Text("Win?")"
  388.     @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  389. @EndOption
  390. @If (62[=@Option)
  391.     @GetOutDrive @TmpDr @LocalWindow(15,40)
  392.         // @Suppress @InDrive // INSTALL only accepts A-Z after @Suppress
  393.         @If (!@DirExists("A:")) @Suppress A @EndIf
  394.         @If (!@DirExists("B:")) @Suppress B @EndIf
  395.         @Cls
  396.  
  397.  @Text(@StrToken("WinDrv?1 WinDrv?2", !!@InWin))
  398.         @Move(22,0)@Text("SelectCmds")@Move(0,0)
  399.     @EndOutDrive
  400.  
  401.     @TmpDi="\\WINDOWS"
  402.     @GetSubdir @TmpDi @Cls @LocalWindow(9,40)
  403.         @Prompt=" @Text("Dir?") "
  404.  
  405.  @Text("WinDir?")
  406.         @If (!@InWin)
  407.  @Text("CreDir")
  408.         @EndIf
  409.     @EndSubdir
  410.  
  411.     @TmpQS="@TmpDr:\\@TmpDi"
  412.     @If (@InWin && !@DirExists(@TmpQS))
  413.         @Display @Cls
  414.  
  415.  @Text("!DirExist", @TmpQS)
  416.  
  417.             @Pause
  418.         @EndDisplay
  419.         @Goto ChooseWindows
  420.     @EndIf
  421.     @MkDir(@TmpQS)
  422.     @TmpQS="@TmpQS\\PROGMAN.INI"
  423.     @If (!@Exists(@TmpQS))
  424.         @Write(@TmpQS, "wt", "[Groups]\n")
  425.     @ElseIf (@Grep(@TmpQS, "\\RTZ.GRP\r\n")+1)
  426.         @Goto ChooseConfig
  427.     @EndIf
  428.     @TmpI1=((@FileSize(@TmpQS)&65535)|8192)
  429.     @Write(@TmpQS,, "Group@TmpI1=@OutDir\\RTZ.GRP\n")
  430. @EndIf
  431.  
  432.  
  433. ChooseConfig:
  434.  
  435. @FlushOptions
  436. @FlushGroups
  437.  
  438. @TmpQS="@OutDir\\RTZ.CFG"
  439. @TmpI1=32767
  440. @If (@Exists(@TmpQS))
  441.     @TmpI1=@PeekF(@TmpQS, 32, 1)
  442. @EndIf
  443.  
  444. @If (@TmpI1>2)
  445.     @SetOption(65)
  446.     @SetOption(67)
  447.     @SetGroup(O) @SetGroup(S)
  448.     @If (@ExtraMem)
  449.         @SetGroup(B) @SetGroup(H) @SetGroup(X)
  450.     @EndIf
  451.     @Goto InputConfig
  452. @EndIf
  453.  
  454. @CDDriveI=@PeekF(,, 1)
  455. @SetOption(20+@PeekF(,, 1))
  456. @SetOption(40+@PeekF(,, 1))
  457. @If (@PeekF(,, 1)) @SetGroup(O) @EndIf
  458. @If (@PeekF(,, 1)) @SetGroup(X) @EndIf
  459. @IOAddr=@PeekF(,, 2)
  460. @IRQ=@PeekF(,, 2)
  461. @DMA=@PeekF(,, 2)
  462. @If (@PeekF(,, 1)) @SetGroup(H) @EndIf
  463. @If (@PeekF(,, 1)) @SetGroup(S) @EndIf
  464.  
  465. @If (@TmpI1<2) 
  466.     @If (X[=@Group) @SetGroup(B) @EndIf
  467. @Else
  468.     @If (@PeekF(,, 1)) @SetGroup(B) @EndIf
  469. @EndIf
  470.  
  471.  
  472. InputConfig:
  473.  
  474. @If (@ChgCfg)
  475.     @FlushOptions
  476.     @GetOption @Cls @LocalWindow(11,40)
  477.  @Text("Snd?"):
  478.       //@Option 65="@Text("AutoDet")"
  479.         @Option 21="@ST1"
  480.         @Option 22="@ST2"
  481.         @Option 30="@ST10"
  482.         @Option 23="@ST3"
  483.         @Option 20="@ST0"
  484.         @Option 33="@ST13"
  485.           //@Option 28="@ST8"
  486.         @Option 24="@ST4"
  487.         @Option 32="@ST12"
  488.         @Option 31="@ST11"
  489.         @Option 26="@ST6"
  490.         @Option 27="@ST7"
  491.         @Option 25="@ST5"
  492.         @If (@Media) @Option 29="@ST9" @EndIf
  493.     @EndOption
  494. @EndIf
  495. @If (65[=@Option)
  496. //  @If (@DetectSoundCard(0))
  497. //      @SetOption(21)
  498. //      @IOAddr=@DetectSoundCard(1)
  499. //      @IRQ=@DetectSoundCard(2)
  500. //      @DMA=@DetectSoundCard(3)
  501. //      @SetOption(66)
  502. //  @Else   // Assume LifeSize
  503.         @SetOption(20)
  504. //  @EndIf
  505. @EndIf
  506.  
  507. @SndDrvI=0
  508. L2:
  509. @If (@SndDrvI+20[!@Option)
  510.     @SndDrvI=(@SndDrvI+1)
  511.     @Goto L2
  512. @EndIf
  513. @SndDrv=@StrToken(@SndDrvs, @SndDrvI*2, ":=")
  514. @SndDrv="DRIVERS\\@SndDrv"
  515. @Snd=@StrToken(@SndDrvs, @SndDrvI*2 + 1, ":=")
  516.  
  517. @If (65[=@Option && @ChgCfg)
  518.     @ClearOption(65)
  519.     @GetOption @Cls @CheckBox @LocalWindow(11,40)
  520.         @SetOption(0) @Option 0="@Text("Det", @Snd)"
  521.         @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  522.     @EndOption
  523.     @If (0[!@Option) @Goto InputConfig @EndIf
  524. @EndIf
  525.  
  526. @If (66[!@Option)
  527.     @IOAddr=@PeekF("@OutDir\\@SndDrv.COM", 262, 2)
  528.     @IRQ=@PeekF(,, 2)
  529.     @DMA=@PeekF(,, 2)
  530. @EndIf
  531.  
  532. @TmpI1=@IOAddr
  533. @IOAddrQS=""
  534. @If (!@TmpI1) @IOAddrQS="0" @EndIf
  535. IOAD2H:
  536.     @TmpI2=(@TmpI1&15)
  537.     @TmpI1=(@TmpI1/16)
  538.     @If (@TmpI1+@TmpI2)
  539.         @IOAddrQS="@StrMid(@HexDig, @TmpI2, 1)@IOAddrQS"
  540.     @EndIf
  541.     @If (@TmpI1) @Goto IOAD2H @EndIf
  542.  
  543. @If (@ChgCfg)
  544.     @TmpQS=@IOAddrQS
  545.     @TmpI2=@IRQ
  546.     @TmpI3=@DMA
  547.     @If (@DetectSoundCard(0))
  548.         @TmpI1=@DetectSoundCard(1)
  549.         @TmpQS=""
  550.         @If (!@TmpI1) @TmpQS="0" @EndIf
  551. IOAD2H2:
  552.             @TmpI2=(@TmpI1&15)
  553.             @TmpI1=(@TmpI1/16)
  554.             @If (@TmpI1+@TmpI2)
  555.                 @TmpQS="@StrMid(@HexDig, @TmpI2, 1)@TmpQS"
  556.             @EndIf
  557.             @If (@TmpI1) @Goto IOAD2H2 @EndIf
  558.         @TmpI2=@DetectSoundCard(2)
  559.         @TmpI3=@DetectSoundCard(3)
  560.     @EndIf
  561.  
  562.     @If (@IOAddr!=65535)
  563.         @GetString @IOAddrQS @Cls @Prompt=" @Text("Hex?") "
  564.  @Text("IOA?", @TmpQS):
  565.  
  566.         @EndString
  567.         @IOAddr=0
  568.         @TmpI1=(-1)
  569.         @Goto IOAH2D2
  570. IOAH2D1:
  571.         @IOAddr=(@IOAddr*16 + (@StrFind(@HexDig, @StrMid(@IOAddrQS, @TmpI1, 1)) & 15))
  572. IOAH2D2:
  573.         @TmpI1=(@TmpI1+1)
  574.         @If (@TmpI1<@StrLen(@IOAddrQS)) @Goto IOAH2D1 @EndIf
  575.     @EndIf
  576.  
  577.     @If (@IRQ!=65535)
  578.         @GetInteger @IRQ @Cls @Prompt=" @Text("Dec?") "
  579.  @Text("IRQ?", "@TmpI2"):
  580.  
  581.         @EndInteger
  582.     @EndIf
  583.  
  584.     @If (@DMA!=65535)
  585.         @GetInteger @DMA @Cls @Prompt=" @Text("Dec?") "
  586.  @Text("DMA?", "@TmpI3"):
  587.  
  588.         @EndInteger
  589.     @EndIf
  590. @EndIf
  591.  
  592. @IOAddr=(@IOAddr&65535)
  593. @IOAddrQS=@StrTail(@IOAddrQS, 4)
  594. @If (@IOAddr==65535) @IOAddrQS=@Text("None") @EndIf
  595.  
  596. @IRQ=(@IRQ&65535)
  597. @IRQQS="@IRQ"
  598. @If (@IRQ==65535) @IRQQS=@Text("None") @EndIf
  599.  
  600. @DMA=(@DMA&65535)
  601. @DMAQS="@DMA"
  602. @If (@DMA==65535) @DMAQS=@Text("None") @EndIf
  603.  
  604.  
  605. InputMusic:
  606.  
  607. @SndDflt=@StrToken(@SndDflts, @SndDrvI, ":")
  608. @TmpI1=@StrToInt(@SndDflt)
  609. @If (@StrFind(@SndDflt, "!")+1)
  610.     @SetOption(40+@TmpI1)
  611.     @ClearOption(67)
  612. @ElseIf (@ChgCfg)
  613.     @GetOption @Cls @LocalWindow(12,40)
  614.  @Text("Mus?"):
  615.         @Option 40="@MT0"
  616.       //@Option 67="@Text("AutoDet")"
  617.         @Option 43="@MT3"
  618.         @Option 44="@MT4"
  619.         @Option 49="@MT9"
  620.       //@Option 54="@MT14"
  621.         @Option 52="@MT12"
  622.         @Option 48="@MT8"
  623.         @Option 47="@MT7"
  624.         @Option 46="@MT6"
  625.         @Option 41="@MT1"
  626.         @Option 42="@MT2"
  627.         @Option 50="@MT10"
  628.         @Option 53="@MT13"
  629.         @Option 51="@MT11"
  630.         @Option 45="@MT5"
  631.     @EndOption
  632. @EndIf
  633. @If (67[=@Option)
  634.   @If (0)
  635.     @TmpI2=@DetectMusicDriver()
  636.     @If     (@TmpI2==3) @TmpI1=8
  637.     @ElseIf (!@TmpI2)   @TmpI1=5
  638.     @EndIf
  639.   @EndIf
  640.     @SetOption(40+@TmpI1)
  641. @EndIf
  642.  
  643. @MusDrvI=0
  644. L3:
  645. @If (@MusDrvI+40[!@Option)
  646.    @MusDrvI=(@MusDrvI+1)
  647.    @Goto L3
  648. @EndIf
  649. @MusDrv=@StrToken(@MusDrvs, @MusDrvI*2, ":=")
  650. @Mus=@StrToken(@MusDrvs, @MusDrvI*2 + 1, ":=")
  651.  
  652. @If (67[=@Option && @ChgCfg)
  653.     @ClearOption(67)
  654.     @GetOption @Cls @CheckBox @LocalWindow(11,40)
  655.         @SetOption(0) @Option 0="@Text("Det", @Mus)"
  656.         @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  657.     @EndOption
  658.     @If (0[!@Option) @Goto InputMusic @EndIf
  659. @EndIf
  660.  
  661. @TmpI1=(@StrFind(@SndDflt, "s")+1)
  662. @If (@TmpI1)
  663.     @ClearGroup(O)
  664. @EndIf
  665. @If (!@ExtraMem)
  666.     @ClearGroup(X)
  667.     @ClearGroup(B)
  668.     @ClearGroup(H)
  669. @EndIf
  670.  
  671. @If (@ChgCfg)
  672.     @If (@ExtraMem || !@TmpI1 || @Media)
  673.         @GetGroups @Cls @CheckBox @LocalWindow(9,40)
  674.  @Text("Add?")
  675.         @If (!@TmpI1)
  676.             @Set O="@Text("Smooth?")"
  677.         @EndIf
  678.         @If (@ExtraMem)
  679.             @Set X="@Text("EMS?")"
  680.             @Set B="@Text("EMSVideo?")"
  681.             @Set H="@Text("LoadHi?")"
  682.         @EndIf
  683.         @If (@Media==1)
  684.             @Set S="@Text("DigSnd?")"
  685.         @EndIf
  686.         @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  687.         @EndGroups
  688.     @EndIf
  689.  
  690.     @If (@Media)
  691.         @GetOutDrive @CDDrive @LocalWindow(15,40)
  692.         @If (!@DirExists("A:")) @Suppress A @EndIf
  693.         @If (!@DirExists("B:")) @Suppress B @EndIf
  694.         @Cls
  695.  
  696.  @Text("CD?", @Name):
  697.         @Move(22,0)@Text("SelectCmds")@Move(0,0)
  698.         @EndOutDrive
  699.         @CDDriveI=@Eval(@CDDrive-A)
  700.     @EndIf
  701. @EndIf
  702.  
  703. @TmpQS="@OutDir\\RTZ.CFG"
  704. @Write(@TmpQS, "wb", "@Name\r\n\x1a               ")
  705. @PokeF(@TmpQS, 32, 1, 2)             // .CFG file version
  706. @PokeF(,, 1, @CDDriveI)
  707. @PokeF(,, 1, @SndDrvI)
  708. @PokeF(,, 1, @MusDrvI)
  709. @PokeF(,, 1, O[=@Group)
  710. @PokeF(,, 1, X[=@Group)
  711. @PokeF(,, 2, @IOAddr)
  712. @PokeF(,, 2, @IRQ)
  713. @PokeF(,, 2, @DMA)
  714. @PokeF(,, 1, H[=@Group)
  715. @PokeF(,, 1, S[=@Group)
  716. @PokeF(,, 1, B[=@Group)
  717.  
  718. @PokeF("@OutDir\\@SndDrv.COM", 262, 2, @IOAddr)
  719. @PokeF(,, 2, @IRQ)
  720. @PokeF(,, 2, @DMA)
  721.  
  722. @CDDrive=(@StrIndex("ABCDEFGHIJKLMNOPQRSTUVWXYZ", @CDDriveI))
  723.  
  724. @GetOption @Cls @CheckBox @LocalWindow(20,40)
  725.          @Name @Text("SysCfg")
  726.  
  727.     @Text("Snd"):@Move(3,44)@Snd
  728.       @Text("IOA"):@Move(4,44)@IOAddrQS
  729.       @Text("IRQ"):@Move(5,44)@IRQQS
  730.       @Text("DMA"):@Move(6,44)@DMAQS
  731.     @Text("Mus"):@Move(7,44)@Mus
  732.     @Text("Smooth"):@Move(8,44)@Text(@StrToken(@NY,O[=@Group))
  733.     @Text("EMS"):@Move(9,44)@Text(@StrToken(@NY,X[=@Group))
  734.     @Text("EMSVideo"):@Move(10,44)@Text(@StrToken(@NY,B[=@Group))
  735.     @Text("LoadHi"):@Move(11,44)@Text(@StrToken(@NY,H[=@Group))
  736.     @If (@Media==1)@Text("DigSnd"):@Move(12,44)@Text(@StrToken(@NY,S[=@Group)) @EndIf
  737.     @If (@Media)@Text("CD"):@Move(13,44)@CDDrive: @EndIf
  738.  
  739.     @Text("ToChg"):
  740.                @OutDir\INSTALL
  741.  
  742.     @If (!@ChgCfg) @SetOption(63) @EndIf @Option 63="@Text("Cfg?")"
  743.     @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  744. @EndOption
  745. @ChgCfg=1
  746. @If (63[=@Option) @Goto InputConfig @EndIf
  747.  
  748. @If (O[=@Group)   @Args="@Args -O" @EndIf
  749. @If (X[=@Group)   @Args="@Args -X" @EndIf
  750. @If (B[=@Group)   @Args="@Args -L" @EndIf
  751. @If (S[!@Group)   @Args="@Args -S" @EndIf
  752. @If (H[=@Group)   @LH="LOADHIGH "  @EndIf
  753.  
  754. @BOn="@@echo off\n@OutDrive:\ncd \\@Subdir\n"
  755. @BOff="@SndDrv u\n"
  756.  
  757. @If (@StrFind(@SndDflt, "u")+1)
  758.     @BOn="@BOn@!SBOS -f\n@LH@!DRIVERS\\ULTRAMID -DDRIVERS\\ -M90 -NMT32.INI\n"
  759.     @BOff="@BOff@!DRIVERS\\ULTRAMID -F\necho.\n"
  760. @EndIf
  761. @BOn="@BOn@LH@SndDrv\n"
  762. @If (@StrFind(@SndDflt, "p")+1)
  763.     @BOn="@BOn@!PAS set fm to 90\nPAS set pcm to 60\nPAS set vol to 60\n"
  764. @EndIf
  765.  
  766. @If (@Media==1)
  767. /*    
  768.     @Write("MECH2.BAT", "wt",
  769.         "@BOn@CDDrive:\\MECH2\\MECINTRO @CDDrive:\\MECH2\\\n@BOff")
  770.     @Write("RSCARRY.BAT", "wt",
  771.         "@BOn@CDDrive:\\SCARRY\\BEST @CDDrive:\\SCARRY\\BESTDEMO@Args -P:@CDDrive:\\SCARRY\\ -F\n@BOff")
  772.     @Write("SIMON.BAT", "wt",
  773.         "@@echo off\n@CDDrive:\ncd \\SIMON\nCALL SIMON\n")
  774. */
  775.     @Write("MECH2.BAT", "wt",
  776.         "@BOn\nDIR @CDDrive: > nul\n@CDDrive:\\MECH2\\MECINTRO @CDDrive:\\MECH2\\\n@BOff")
  777.     @Write("SIMON.BAT", "wt",
  778.         "@BOn\nDIR @CDDrive: > nul\n@CDDrive:\n cd \\SIMON\nCALL SIMON\n")
  779. @EndIf
  780.  
  781. @If (40[!@Option) @Args="@Args -M:DRIVERS\\@MusDrv" @EndIf
  782. @If (@Media)
  783.     @Args="@Args -P:@CDDrive:\\"
  784.     @If (@Exists("@OutDir\\@FileBase.PRJ"))
  785.         @Args="@Args -F"
  786.     @EndIf
  787.     @If (@Media==2)
  788.         @BOn="@BOn@!FMPDRV\n"
  789.     @EndIf
  790. @EndIf
  791.  
  792. //@Write("RTZ.BAT", "wt", "@BOn@MADECmd @FileBase@Args\n@BOff")
  793. @Write("RTZ.BAT", "wt", "@BOn\nDIR @CDDrive: > nul\n@MADECmd @FileBase@Args\n@BOff")
  794.  
  795. @TmpQS="@OutDir\\READ.ME"
  796. @If (@Initial && @Exists(@TmpQS))
  797.     @GetOption @Cls @CheckBox @LocalWindow(10,40)
  798.  
  799.  @Text("README1", @Name)
  800.  
  801.  @Text("README2")
  802.         @SetOption(64) @Option 64="@Text("VuREADME?")"
  803.         @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  804.     @EndOption
  805.     @If (64[=@Option) @Browse(@TmpQS) @EndIf
  806. @EndIf
  807.  
  808. @Display @Cls
  809.  @Text("Done", @Name)
  810.  
  811.  @Text("ToPlay"):
  812.  
  813.     @OutDir\RTZ
  814.  
  815.  @Text("ToChg"):
  816.  
  817.     @OutDir\INSTALL
  818.  
  819.  @If (@Initial && @InWin)@Text("ExitWin", @Name) @EndIf
  820.     
  821.     @Pause
  822. @EndDisplay
  823.  
  824. @Finish @Cls
  825. @EndFinish
  826.